Feature

Check the FeatureBase class code on GitLab

A Feature is a particular metric measurement extracted from the raw data.

Each Feature has:

  • measurement_ A measurement (e.g. for a point in an image, its X and Y coordinates.

  • measurement_covariance_ The covariances matrix of the measurement above.

  • measurement_sqrt_information_ the sqrt of the information matrix (i.e. the square root of the inverse of the covariance).

  • Optionally, a feature Descriptor, used for feature matching. This would be defined in derived classes.

  • A list of Factors.

Constructing features

A feature is a very small object, merely storing a metric measurement and its uncertainty. Its constructor is simple,

FeatureBase(const std::string&      _type,
            const Eigen::VectorXs&  _measurement,
            const Eigen::MatrixXs&  _meas_uncertainty,
            UncertaintyType         _uncertainty_type = UNCERTAINTY_IS_COVARIANCE);

Notice however:

  • The measurement is metric and comes in form of a N-vector

  • It is accompained by a NxN matrix of uncertainty. This matrix can be specified in different ways, indicated by the enum UncertaintyType which can take the values:

    • UNCERTAINTY_IS_COVARIANCE (default), meaning that the matrix you entered is a covariance.

    • UNCERTAINTY_IS_INFO meaning you entered an information matrix.